package belf.migrate.engine.ddl.trigger.sqlserver;

import belf.migrate.api.model.QualifiersModel;
import belf.migrate.api.table.schema.Catalog;
import belf.migrate.engine.ddl.BaseDDLConvert;

/**
 * SqlServer的语句到达梦的语句兼容性不好，只能大致改写。大多数情况下需要实施人员手动改写。<br/>
 * 目前仅仅处理DML相关的触发器，DDL相关的触发器暂时没管。目前自动能完成的功能包括：
 * <ul>
 *     <li>主体结构改写，表名、视图名改为在触发动作之后</li>
 *     <li>Declare语句从body中移到body前来申明</li>
 *     <li>body中的set语句、if语句的改写</li>
 *     <li>函数名称、字段类型的替换</li>
 *     <li>抛出异常子句RAISERROR的替换</li>
 *     <li>事务回滚语句ROLLBACK TRANSACTION</li>
 *     <li>@@TRANCOUNT变量的替换</li>
 * </ul>
 */
public class SqlServer2DMTriggerConvert extends BaseDDLConvert {
    /**
     * 带schema的构造函数。
     *
     * @param objectName      对象名称，如表名、视图名、Class名、Type名、触发器名、存储过程名
     * @param sql             对象对应的DDL创建语句
     * @param sourceCatalog   源库Catalog
     * @param sinkCatalog     目标库Catalog
     * @param schema          指定了schema，则生成的VIEW DDL中，所有的表都需要加上前缀schema名
     * @param qualifiersModel
     */
    public SqlServer2DMTriggerConvert(String objectName, String sql, Catalog sourceCatalog, Catalog sinkCatalog,
                                      String schema, QualifiersModel qualifiersModel) {
        super(objectName, sql, sourceCatalog, sinkCatalog, schema, qualifiersModel);
    }


}
